package whisper.api.gateway.frame.auth.repository;


import whisper.api.gateway.frame.auth.domain.Permission;
import whisper.api.gateway.frame.auth.domain.Role;

import java.util.List;

/**
 * Created by JT on 2017/9/25.
 */
public interface PermissionRepository {

    /**
     * 添加权限
     * @param permission
     */
    void insertPermission(Permission permission);

    /**
     * 将权限赋予角色
     * @param pid：权限ID
     * @param rid：角色ID
     */
    void addPermissionsToRole(Integer pid, Integer rid);


    /**
     * 通过资源URL查询拥有该权限的角色
     * @param url：请求地址
     * @return
     */
    List<Role> findRolesByPermissioinUrl(String url);


    /**
     * 通过资源URL与请求类型 查询拥有该权限的角色
     * @param url：资源URL
     * @param type：请求类型： GET、POST、PUT、DELETE
     * @return
     */
    List<Role> findRolesByPermissionUrlAndType(String url, String type);

}
